#include <stdio.h>
#include <stdint.h>
#include <assert.h>
#include <inttypes.h>

typedef uint64_t fraction_t;
#define fraction_ph PRIu64

fraction_t gcd_loop(fraction_t a, fraction_t b) {
    while(b != 0) {
        fraction_t new_b = a % b;
        a = b;
        b = new_b;
    }
    return a;
}

typedef struct {
    fraction_t numerator;
    fraction_t denominator;
} fraction;

void fraction_print(fraction value) {
    printf("%" fraction_ph "/%" fraction_ph "\n", value.numerator, value.denominator);
}

fraction fraction_add(fraction a, fraction b) {
    fraction_t gcd = a.denominator > b.denominator
      ? gcd_loop(a.denominator, b.denominator)
      : gcd_loop(b.denominator, a.denominator);
    fraction result;
    result.denominator = a.denominator * b.denominator / gcd;
    result.numerator = result.denominator / a.denominator * a.numerator +
      result.denominator / b.denominator * b.numerator;
    gcd = result.denominator > result.numerator
      ? gcd_loop(result.denominator, result.numerator)
      : gcd_loop(result.numerator, result.denominator);
    result.denominator /= gcd;
    result.numerator /= gcd;
    assert(result.denominator != 0);
    assert(result.numerator != 0);
    return result;
}

int main(void) {
    int t = 0;
    scanf("%d", &t);
    for(int i = 0; i < t; i++) {
        int a, b;
        scanf("%d%d", &a, &b);
        fraction result;
        result.numerator = 0;
        result.denominator = 1;
        for (int k = a; k <= b; k++) {
            fraction num;
            num.numerator = 1;
            num.denominator = k;
            result = fraction_add(result, num);
        }
        fraction_print(result);
    }
    return 0;
}
